<?php
/**
 * TEST PARA LOS WIDGETS
 */

//Carga de archivos necesarios para todos los casos de prueba

//Nos aseguramos que se paso una opción en el argumento del test
if(  !isset( $_REQUEST['opt'] )  ){
	echo "PASAR ARGUMENTO ?opt=opcion_deseada";
	return;
}

if (!defined('CEFIRO')) define("CEFIRO",substr(__FILE__,0,strpos(__FILE__,"cefiro"))."cefiro/widgets/cefiro.php");
require_once(CEFIRO);

//Todos los casos de prueba
//las funciones display asignan la plantilla o controlador renderizado
//al nombre que tiene la instancia...
//Nombre como en el atributo nombre ($var->name), no como en el nombre de la variaba ($var)
//en caso que este no este ajustado los valores serán el tipo de widgets y un contador con cada instancia iniciando en 1
//Ej. button1, simplecombo1, rombo1, rombo2, etc...
switch ($_REQUEST['opt']){

	case "button3d":

		require_once(CEF_BUTTON3D);

		$mybutton = new button3d();
		$mybutton->set_onClic('validate()');
		$mybutton->set_onFocus("document.forms['myform'].campo");
		$mybutton->display_button3d();

		break;

	case "simplecombo":

		require_once(CEF_SIMPLECOMBO);

		//En el caso del combo necesitamos hacer un fetch a una consulta en la BD
		$dbconn=pg_connect("host=192.168.1.110 port=5432 user=sigelabp password=s1g3l4B dbname=sigelab");
		$result=pg_query($dbconn,"SELECT * FROM analisis");
		$query = pg_fetch_all($result);

		//$query es el fetch mencionado anteriormente, idanalisis y nombreana son campos de la tabla
		//devuelta en la consulta
		$myscombo = new simplecombo('COMBO',$query,'idanalisis','nombreana');
		$myscombo->set_selection('-Seleccionar un valor-');
		$myscombo->set_onClic('validate()');
		$myscombo->set_onFocus("document.forms['myform'].campo");
		$myscombo->add_domain("A1");
		$myscombo->display_simplecombo();

		break;

	case "rombo" :

		require_once(CEF_ROMBO);


		$myrombo = new rombo("myform","ROMBO");
		$myrombo->set_domain("A3:B4");
		$myrombo->display_rombo();

		break;

	case "radio" :

		require_once(CEF_RADIO);

		$first_radio = new radio("yes");
		$sec_radio = new radio("no","radio1");

		$first_radio->set_label("YES");
		$first_radio->display_radio();

		$sec_radio->set_label("NO");
		$sec_radio->display_radio();

		break;

	case "formatted_table" :

		require_once(CEF_FORMATTED_TABLE);

		$dbconn=pg_connect("host=192.168.1.110 port=5432 user=sigelabp password=s1g3l4B dbname=sigelab");
		$result=pg_query($dbconn,"SELECT * FROM clientecontacto INNER JOIN tipoedocliente ON clientecontacto.idtipoedocliente = tipoedocliente.idtipoedocliente WHERE UPPER(codcliente) LIKE UPPER('SGLG-8%')");
		$query = pg_fetch_all($result);

		for($i = 0; $i < count($query); $i++){
			$query[$i]['button'] = "<input type=button value=".$query[$i]['codcliente'].">";
			$query[$i]['apellidos'] = $query[$i]['apellido'];
			$query[$i]['nombres'] = $query[$i]['nombre'];
			$query[$i]['codcliente'] = $query[$i]['codcliente'];
			//			$cods[$i]=$query[$i]['codcliente'];
			$q2 = pg_query("SELECT * FROM tipoedocliente ORDER BY edocliente");
			$t2 = pg_fetch_all($q2);
			for ($j = 0 ; $j < count($t2) ; $j++)
			if ($t2[$j]['idtipoedocliente'] == $query[$i]['idtipoedocliente']){
				$query[$i]['estado'] = $t2[$j]['edocliente'];
				break;
			}
		}
		$titles = array('Codigo','apellidos','nombres','estado');
		$keys = array('button','apellidos','nombres','estado');

		//		$myft = new formatted_table($query,$titles,$keys,$cods);
		$myft = new formatted_table($query,$titles,$keys);
		$myft->set_name('myft');
		$myft->set_link("nothing.php");
		$myft->set_nameid("codcliente");
		$myft->display_formatted_tables();

		break;

	case "checkbox":

		require_once(CEF_CHECKBOX);

		$mycheckbox = new checkbox("tocheck","ACEPTO LOS TERMINOS");
		$mycheckbox->set_onClic('doNothing()');
		$mycheckbox->display_checkbox();

		$mychk = new checkbox("tocheck","Si, deseo instalar el software del patrocinador");
		$mychk->set_onClic('doSomething()');
		$mychk->set_domain("A2:B2");
		$mychk->display_checkbox();

		break;

	case "combobox":

		require_once(CEF_COMBOBOX);

		//En el caso del combo necesitamos hacer un fetch a una consulta en la BD
		$dbconn=pg_connect("host=192.168.1.110 port=5432 user=sigelabp password=s1g3l4B dbname=sigelab");
		$result=pg_query($dbconn,"SELECT * FROM analisis");
		$query = pg_fetch_all($result);

		//$query es el fetch mencionado anteriormente, idanalisis y nombreana son campos de la tabla
		//devuelta en la consulta
		$mycombobox = new combobox('Etiqueta del Combo','COMBOBOX',$query,'idanalisis','nombreana');
		$mycombobox->set_selection('-Seleccionar un valor-');
		$mycombobox->set_onClic('validate()');
		$mycombobox->set_onFocus("document.forms['myform'].campo");
		$mycombobox->set_domain("A1:B3");
		$mycombobox->display_combobox();

		break;

	case "textbox" :

		require_once(CEF_TEXTBOX);

		$mytextbox = new textbox();
		$mytextbox->set_value('Introduce Data');
		$mytextbox->set_label("Here goes Data:");
		$mytextbox->set_domain('A1:B2:B4:B6');
		$mytextbox->display_textbox();

		break;

	case "input":

		require_once(CEF_INPUT);

		$myinput = new input('password','nopassword','pwd');
		$myinput->display_input();

		$myinputdom = new domain();
		$myinputdom->set_domain('A1:A12:D1');
		$myinputdom->display_domain('pwd');

		break;

	case "hidden":

		require_once(CEF_HIDDEN);

		$myhidden = new hidden('escondido','escondido');
		$myhidden->display_hidden();

		break;

	case 'readonlybox':

		require_once(CEF_READONLYBOX);

		$myrobox = new readonlybox("SOLO LECTURA... CAN'T TOUCH THIS");
		$myrobox->set_label('NO PUEDES MODIFICARLO');
		$myrobox->display_readonlybox();

		break;

	case 'image':

		require_once(CEF_IMAGE);

		$myimage = new imagece("imagen_prueba","try.png","UNA IMAGEN","http://www.google.com");
		$myimage->display_image();

		break;

	case 'anchor':

		require_once(CEF_ANCHOR);

		$anchor_opt = new input_opt();
		$anchor_opt->set_onClic("alert('CERCA DE ENTRAR A UN MUNDO DE FANTASIAS INIMAGINABLES')");
		$myanchor = new anchor('XXX NUDE GIRLS!!!','http://www.disney.com','TOPLESS_BABES',$anchor_opt);
		$myanchor->display_anchor();

		break;

	case 'span':

		require_once(CEF_SPAN);

		$myspan = new span("spanning","CONTENIDO DEL SPAN...");
		$myspan->set_onFocus("alert('JUST STEPPING ON THE SPAN')");
		$myspan->display_span();

		break;

	case 'datefield':

		require_once(CEF_DATEFIELD);

		$mydatefield = new datefield();
		$mydatefield->set_change(true);
		$mydatefield->display_datefield();

		break;

	case 'styled_checkbox':

		require_once(CEF_CHECKBOX);

		$mystyledchk = new styled_checkbox("ESTO ES UN CHECKBOX \"ESTILADO\"","UNDEF",true,'STY_CHK');
		$mystyledchk->display_styled_checkbox();

		break;

	case 'formbuttons':

		require_once(CEF_FORMBUTTONS);

		$myfrmbutton = new formbuttons();

		$left_input_options = new input_opt();
		$left_input_options->set_onClic("alert('ENVIANDO...')");
		$myfrmbutton->set_left_opt($left_input_options);

		$myfrmbutton->display_formbuttons();

		break;

	case 'barcode':

		require_once(CEF_BARCODE);

		$mybarcode = new barcode('1','cod_barras_1');
		$mybarcode->display_barcode();

		break;

	case 'grid':

		require_once(CEF_GRID);

		$headers[0]="";$headers[1]="Codigo";$headers[2]="Nombre Unidad de Negocio";
		$widths[0]="20";$widths[1]="70";$widths[2]="350";
		$aligns[0]="left";$aligns[1]="left";$aligns[2]="left";
		$types[0]="img";$types[1]="ro";$types[2]="ro";
		$sortings[0]="str";$sortings[1]="str";$sortings[2]="str";

		$mygrid = new gridce("testing_grid",3,"|",$headers,$widths,$aligns,$types,$sortings,false,'',30,'');
		$mygrid->display_grid();

		break;

	case 'filebox':

		require_once(CEF_FILEBOX);

		$myfilebox = new filebox('FICHERO',"CURRICULUM VITAE");
		$myfilebox->display_filebox();

		break;

	case 'semaphore':

		require_once(CEF_SEMAPHORE);

		$datesemaphore = new semaphore(10,60,90,"datesemaphore");
		$datesemaphore->calc_single_semaphore("10/05/2007","12/10/2007");
		$datesemaphore->display_semaphore();

		$quantsemaphore = new semaphore(10,11,90,"quantsemaphore");
		$quantsemaphore->calc_single_semaphore(900,10000);
		$quantsemaphore->display_semaphore();

		$doublesemaphore = new semaphore(20,35,95,"dualsemaphore");
		$doublesemaphore->calc_dual_semaphore("10/05/2007","12/10/20007",9000,10000);
		$doublesemaphore->display_semaphore();
		break;

	case 'barsem':

		require_once(CEF_BARSEM);

		$datebarsem = new barsem("barsemlow");
		$datebarsem->calc_single_barsem(100,10000);
		$datebarsem->display_barsem();
		$datebarsem = new barsem("barsemlow2");
		$datebarsem->calc_single_barsem(1000,10000);
		$datebarsem->display_barsem();
		$datebarsem = new barsem("barsemmid");
		$datebarsem->calc_single_barsem(5000,10000);
		$datebarsem->display_barsem();
		$datebarsem = new barsem("barsemhigh");
		$datebarsem->calc_single_barsem(8000,10000);
		$datebarsem->display_barsem();
		break;

	case 'textarea':

		require_once(CEF_TEXTAREA);

		$textarea = new textarea("BORRAME Y REESCRIBEME...","TEXTO:",10,10,"areadetexto");
		$textarea->set_domain("A1:A3");
		$textarea->display_textarea();
		break;

	case 'searching_grid':

		require_once(CEF_SEARCHING_GRID);
		$sg = new searching_grid("","Supervisor","supervisor");

		$sg->set_first_input_field("Cédula");
		$sg->set_second_input_field("Nombre");
		$sg->set_third_input_field("Apellido");

		$sg->set_id_db_field("idpersonal");
		$sg->set_first_db_field("ci");
		$sg->set_second_db_field("apellido");
		$sg->set_third_db_field("nombre");

		$sg->set_search_field("Nombre ó Apellidos");
		$sg->set_zajax_path("../../widgets/searching_grid/");
		$sg->set_query("get_super");
		$sg->set_env(substr(__FILE__,0,strlen(__FILE__)-8)."myfunc.php");
		$sg->display_searching_grid();
		break;

	case 'gantt':
		require_once(CEF_GANTT);
		$gantt=new GanttCe();
		$gantt->set_name('gantt');
		$gantt->display_gantt();
		break;

	case 'cefpdf':

		require_once(CEF_PDF);

		$dbconn=pg_connect("host=192.168.1.110 port=5432 user=sigelabp password=s1g3l4B dbname=sigelab");
		$result=pg_query($dbconn,"SELECT * FROM tipoasignacion");
		$query = pg_fetch_all($result);

		/**
		 * @brief Titulos e indices de la consulta
		 */
		$titles = array('Identificador','Descripcion');
		$keys	= array('idtipoasignacion','tipoasignacion');

		global $smarty;

		/**
		 * @brief Tabla de Prueba usando el semi-API de cefpdf
		 */
		$smarty->assign("tabla",cefpdf::tables($query,$titles,$keys));

		/**
		 * @brief Imagen de la cabecera
		 */
		$image['src']		= dirname(__FILE__)."/logo_pdvsa_intevep.jpg";
		$image['width']		= 80;
		$image['height']	= 30;
		$image['position']	= "left";

		/**
		 * @brief Texto cabecera del PDF, cada indice del arreglo headers es una linea de la cabecera, puede ubicarse en cualquier parte del documento (es un script)
		 */
		$headers[0]['text'] 	= "GERENCIA TÉCNICA LABORATORIOS GENERALES";
		$headers[0]['style'] 	= "bold";
		$headers[0]['size']		= 11;
		$headers[1]['text'] 	= "SISTEMAS DE GESTIÓN DE LA CALIDAD - ISO/IEC 17025:2005";
		$headers[1]['size']		= 10;

		putenv('TZ=' . "America/Caracas");
		/**
		 * Texto del Pie de pagina
		 */
		$footers[0]['text'] 	= "PDVSA Intevep, S.A. Urbanización Santa Rosa, Sector El Tambor, Los Teques, Estado Miranda";
		$footers[0]['size']		= 8;
		$footers[1]['text'] 	= "Apartado Postal 76343, Caracas 1070-A. Venezuela. Teléfonos: (0212) 330 72 05, 330 72 05, 330 62 77, Fax: (0212) 330 84 35";
		$footers[1]['size']		= 8;
		$footers[2]['text'] 	= "Queda prohibida la reproducción parcial de este documento. (Emisión ".date("d/m/Y")." a las ".date("G:i:s").")";
		$footers[2]['size']		= 8;


		/**
		 * @brief Se carga la cabecera con el texto y las imagenes
		 */
		$smarty->assign("header",cefpdf::headers($headers,$image,true,true,90,60));

		/**
		 * @brief Se carga el pie de pagina con el texto y las imagenes
		 */
		$smarty->assign("footer",cefpdf::footers($footers,false,false,true,0,15));

		/**
		 * @brief Margenes del PDF, la variable margins debe encontrarse en el head de la pagina a renderizar
		 */
		$margins['top']		= "4cm";
		$margins['right']	= "4cm";
		$margins['bottom']	= "4cm";
		$margins['left']	= "4cm";
		$smarty->assign("margins",cefpdf::margins($margins));

		/**
		 * @brief Se asigna una paginacion paa el pdf, la variable smarty asignada SIEMPRE debe colocarse al final del documento HTML
		 */
		$smarty->assign("pages",cefpdf::pages(true,"SE",90,35,'serif',8));

		$smarty->template_dir = dirname(__FILE__).'/';
		$testpdf = new cefpdf("dompdftest","dompdftest.tpl","dompdftest.pdf","DOMPDF TEST");
		$testpdf->display();

		$mypdf = new cefpdf("anchorpdf",FULL_URL."sandbox/anchor_link.html","anchor.pdf","PDF con Anclas");
		$mypdf->display();

		break;

	default:
		echo "OPT INCORRECTO ".$_REQUEST['opt'];

}

global $smarty;
$smarty->template_dir = dirname(__FILE__).'/';
$smarty->display('test.tpl');
?>
